package aiku.numericalcontroloa.Service;

import aiku.numericalcontroloa.Base.Utils.Result;
import aiku.numericalcontroloa.Model.Dto.EmployeeProfileDto;
import aiku.numericalcontroloa.Model.Entity.EmployeeProfile;
import aiku.numericalcontroloa.Model.Vo.EmployeeProfileInfoVo;
import aiku.numericalcontroloa.Model.Vo.EmployeeProfileVo;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
* @author 马
* @description 针对表【employee_profile】的数据库操作Service
* @createDate 2024-01-16 14:25:10
*/
public interface EmployeeProfileService extends IService<EmployeeProfile> {

    Result addEmployeeProfile(EmployeeProfile employeeProfile);

    Result updateEmployeeProfile(EmployeeProfile employeeProfile);

    boolean updateEmployeeProfileByAdmin(String id, boolean state);

    EmployeeProfileInfoVo selectEmployeeProfileByAdmin(Page page);

    EmployeeProfileVo selectEmployeeProfileById(String id);

    boolean deleteEmployeeProfileById(String id);

    EmployeeProfileInfoVo selectEmployeeProfileByState(Page pages,Integer type);

    List<EmployeeProfile> selectEmployeeProfileByNameOrPhoneOrIdCard(String name);

    List<EmployeeProfile> selectEmployeeProfileByStateLike(String name,Integer type);

    Result getEmployeeProfileList(EmployeeProfileDto employeeProfileDto);

    Result getEmployeeProfile(EmployeeProfileDto employeeProfileDto);

    Result getEmployeeProfileCache(EmployeeProfileDto employeeProfileDto);

    Result examineProfile(EmployeeProfileDto employeeProfileDto);

    Result deleteEmployeeProfile(EmployeeProfileDto employeeProfileDto);

    Result getProfileIdList();

}
